package now;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

/**
 * 处理 Socket 对象
 * 实现读取一个客户端发送过来的消息
 * 然后将读取到的消息发送到其他客户端
 * Created by zhangpeng on 2017/2/12.
 */

public class ChatToSocket extends Thread {
    private Socket socket;

    public ChatToSocket(Socket socket){
        this.socket=socket;
    }
    /**
     * 服务端发送数据到客户端
     * 就是通过将数据写出即可
     * @param s 要输出的文字
     */
    public void write(String s){
        try {
            //利用 socket 对象进行写出，即发送到客户端
            socket.getOutputStream().write(s.getBytes("UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void run() {
        try {
            //获取客户端发送到服务端的信息流
            BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
            String line=null;
            //循环读取信息，并发送到其他客户端
            while ((line=reader.readLine())!=null){
                SocketManager.getInstance().sayToOtherSocket(this,line);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
